perm filename U11[1,BGB]1 blob
sn#139438 filedate 1975-01-11 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00006 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 /NOTATION:
C00004 00003 LOC NXT *SOURCE MODE 0 (REGISTER) GET SOURCE DATA
C00007 00004 _____________________________________________________________________
C00009 00005 LOC NXT * SOURCE BYTE ODD
C00011 00006
C00012 ENDMK
C⊗;
/NOTATION:
/ 1. MICRO ROUTINES BEGIN WITH A COMMENT PREFIXED BY "*".
/ 2. ALL OTHER COMMENTS ARE PREFIXED BY SLASH "/".
/ 3. R[N] REFERS TO SCRATCH PAD REGISTER N,
/ R[7] IS ALSO REFERRED TO AS "PC".
/ 4. R[S] REFERS TO THE REGISTER SPECIFIED IN THE SOURCE FIELD
/ OF THE CURRENT INSTRUCTION, IR<8:6>
/ R[D] REFERS TO THE REGISTER SPECIFIED IN THE DESTINATION FIELD
/ OF THE CURRENT INSTRUCTION, IR<2:0>
/ 5. K[N] REFERS TO A LOCATION OF THE CONSTANTS CHIP THAT CONTAINS N.
/ 6. "BUT" STANDS FOR "BRANCH ON MICRO TEST".
LOC NXT * INSTRUCTION FETCH
062 053 F-1 BA←PC; DATI
053 365 F-2 B←PC+2
365 364 F-3 PC←B; CKOFF
364 061 F-4 B,IR←UNIBUS DATA
061 001 F-5 B←B SEX; BUT IR DECODE
/ IF DOUBLE OP INST GOTO S0-1 THRU S7-1 DEPENDING ON SOURCE MODE
/ IF SINGLE OP INST GOTO D0-1 THRU D7-1 DEPENDING ON DESTINATION MODE (INCLUDING JSR)
/ IF BRANCH, CHANGE PC GOTO B-1
/ IF BRANCH, PC UNCHANGED GOTO B2-2
/ IF CLEAR OR SET COND CODE(S) GOTO CCM-1
/ IF INST=RTS GOTO R1-1
/ IF INST=RTI GOTO R2-1
/ IF INST=WAIT GOTO W-1
/ IF INST=HALT GOTO H-1
/ IF INST=RESET GOTO RST-1
/ IF INST=EMT GOTO ET-1
/ IF INST=BPT GOTO BT-1
/ IF INST=IOT GOTO IT-1
/ IF INST=TRAP GOTO T-1
/ IF RESERVED INSTRUCTION (NONE OF THE ABOVE) GOTO RT-1
LOC NXT *SOURCE MODE 0 (REGISTER) GET SOURCE DATA
/GET TO S0-1 FROM F-5 VIA BUT IR DECODE <11:9>=0
201 007 S0-1 B←R[S]; BUT BYTE
/IF BYTE INST GOTO SBE-1 (MUST BE EVEN BYTE)
007 001 S0-2 R[10]←B; BUT DESTINATION
/IF IR<5:3> =0 GOTO D0-1
/ =1 GOTO D1-1
/ =2 GOTO D2-1
/ =3 GOTO D3-1
/ =4 GOTO D4-1
/ =5 GOTO D5-1
/ =6 GOTO D6-1
/ =7 GOTO D7-1
_____________________________________________________________________
LOC NXT *SOURCE MODE 1 (REGISTER DEFERRED) GET SOURCE DATA
/GET TO S1-1 FROM F-5 VIA BUT IR DECODE <11:9>=1
203 244 S1-1 BA←R[S]; DATI; CKOFF; ALBYT
/GET TO S1-2 FROM S2-3 VIA GOTO
/GET TO S1-2 FROM S3-5 VIA GOTO
/GET TO S1-2 FROM S6-5 VIA GOTO
244 007 S1-2 B←UNIBUS DATA; BUT BYTE; GOTO S0-2
/IF ODD BYTE GOTO SBO-1
/IF EVEN BYTE GOTO SBE-1
/IF NOT BYTE FALL THROUGH TO S0-2
_____________________________________________________________________
LOC NXT *SOURCE MODE 2 (AUTO-INCREMENT) GET SOURCE DATA
/GET TO S2-1 FROM F-5 VIA BUT IR DECODE <11:9>=2
205 301 S2-1 BA←R[S]; DATI; ALBYT
301 014 S2-2 B←R[S]+1+BYTE;BAR
/GET TO S2-3 FROM S4-1 VIA GOTO
014 244 S2-3 R[S]←B; CKOFF; GOTO S1-2
_____________________________________________________________________
LOC NXT *SOURCE MODE 3 (AUTO-INC DEFERRED) GET SOURCE DATA
/GET TO S3-1 FROM F-5 VIA BUT IR DECODE <11:9>=3
207 016 S3-1 BA←R[S]; DATI (MUST BE AN EVEN ADDRESS HERE)
016 017 S3-2 B←R[S]+2
/GET TO S3-3 FROM S5-1 VIA GOTO
017 134 S3-3 R[S]←B; CKOFF
/GET TO S3-4 FROM S7-5 VIA GOTO
134 274 S3-4 B←UNIBUS DATA
274 244 S3-5 BA←B; DATI; CKOFF; GOTO S1-2; ALBYT
_____________________________________________________________________
LOC NXT *SOURCE MODE 4 (AUTO DECREMENT) GET SOURCE DATA
/GET TO S4-1 FROM F-5 VIA BUT IR DECODE <11:9>=4
211 014 S4-1 B,BA←R[S]-1-BYTE.BAR; DATI; ENABOVER; GOTO S2-3; ALBYT
_____________________________________________________________________
LOC NXT *SOURCE MODE 5 (AUTO DECREMENT DEFERRED) GET SOURCE DATA
/GET TO S5-1 FROM F-5 VIA BUT IR DECODE <11:9>=5
213 017 S5-1 B,BA←R[S]-2; DATI (ADDR MUST BE EVEN); ENABOVER; GOTO S3-3
_____________________________________________________________________
LOC NXT *SOURCE MODE 6 (INDEXED) GET SOURCE DATA
/GET TO S6-1 FROM F-5 VIA BUT IR DECODE <11:9>=6
215 025 S6-1 BA←PC; DATI(ADDR MUST BE EVEN)
025 026 S6-2 B←PC+2
026 027 S6-3 PC←B; CKOFF
027 030 S6-4 B←UNIBUS DATA
030 244 S6-5 BA←B+R[S]; DATI; CKOFF; GOTO S1-2; ALBYT
_____________________________________________________________________
LOC NXT *SOURCE MODE 7 (INDEXED DEFERRED) GET SOURCE DATA
/GET TO S7-1 FROM F-5 VIA BUT IR DECODE <11:9>=7
217 032 S7-1 BA←PC; DATI(ADDR MUST BE EVEN)
032 033 S7-2 B←PC+2
033 034 S7-3 PC←B; CKOFF
034 035 S7-4 B←UNIBUS DATA
035 134 S7-5 BA←B+R[S]; DATI(ADDR MUST BE EVEN); CKOFF; GOTO S3-4
LOC NXT * SOURCE BYTE ODD
/ GET TO SBO-1 FROM S1-2 VIA BUT BYTE (BYTE INST. AND SOURCE DATA ODD ADDR)
067 346 SBO-1 SHIFT B RIGHT; F SHIFT
346 324 SBO-2 SHIFT B RIGHT; F SHIFT
324 340 SBO-3 SHIFT B RIGHT; F SHIFT
340 361 SBO-4 SHIFT B RIGHT; F SHIFT
361 050 SBO-5 SHIFT B RIGHT; F SHIFT
050 020 SBO-6 SHIFT B RIGHT; F SHIFT
020 052 SBO-7 SHIFT B RIGHT; F SHIFT
052 047 SBO-8 SHIFT B RIGHT; GOTO SBE-1
_____________________________________________________________________
LOC NXT * SOURCE BYTE EVEN
/GET TO SBE-1 FROM SBO-8 VIA GOTO
/GET TO SBE-1 FROM S1-2 VIA BUT BYTE (BYTE INST & SOURCE DATA EVEN ADDR)
/GET TO SBE-1 FROM S0-1 VIA BUT BYTE (BYTE INST)
047 001 SBE-1 R[10]←B SEX; BUT DESTINATION
/ IF IR<5:3> =0 GOTO D0-1
/ =1 GOTO D1-1
/ =2 GOTO D2-1
/ =3 GOTO D3-1
/ =4 GOTO D4-1
/ =5 GOTO D5-1
/ =6 GOTO D6-1
/ =7 GOTO D7-1